Method and system for interface data utilization

ABSTRACT

Methods and systems for interface data utilization are described. In one embodiment, a provider server may offer resources and an application server may offer functionality not provided by the resources of the provider server. A user request may be received through the source user interface. A determination may be made whether the user request contains a request to access a functionality that is not offered by the provider but is offered by an application that is communicatively coupled to the provider via a network. In response, an electronic communication may be established between the provider and the application via a network. A policy of the provider may be accessed from a first database, and interface definition data may be accessed from a second database different from the first database. Target interface data may be rendered based on the policy of the provider and the interface definition data.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of Ser. No. 14/171,565, filed Feb. 3,2014, which is a continuation of Ser. No. 12/129,492, filed May 29,2008, which issued as U.S. Pat. No. 8,645,972, each of which isincorporated herein by reference in its entirety.

BACKGROUND

A provider of applications may seek to provide additional functionalityto its users. Embedding applications that are not controlled by theprovider may increase security risks associated with the user of theembedded applications. The provider may have little control over theoutput of the embedded applications. Applications provided to theprovider by others for deployment may be difficult and expensive tomanage.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings in which:

FIG. 1 is a block diagram of a system, according to example embodiments;

FIG. 2 is a block diagram of an example interfacing subsystem that maybe deployed within the system of FIG. 1 according to an exampleembodiment;

FIG. 3 is a block diagram of an example management subsystem that may bedeployed within the system of FIG. 1 according to an example embodiment;

FIGS. 4 and 5 are example flowcharts illustrating a method for interfacedata rendering according to example embodiments;

FIG. 6 is an example flowchart illustrating a method for originationdata utilization according to example embodiments;

FIG. 7 is a network diagram depicting a network system, according to oneembodiment, having a client server architecture configured forexchanging data over a network;

FIG. 8 is a block diagram illustrating an example embodiment of multiplenetwork and marketplace applications, which are provided as part of thenetwork-based marketplace; and

FIG. 9 is a block diagram diagrammatic representation of machine in theexample form of a computer system within which a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed.

DETAILED DESCRIPTION

Example methods and systems for interface data utilization aredescribed. In the following description, for purposes of explanation,numerous specific details are set forth in order to provide a thoroughunderstanding of example embodiments. It will be evident, however, toone skilled in the art that embodiments of the present invention may bepracticed without these specific details.

In an example embodiment, source interface data may be provided from aprovider. The source interface data may be capable of being used toprovide a source user interface for a networked resource associated withthe provider. A user request may be received through the source userinterface. A service call may be provided over a network to anapplication based on the receiving of the user request. The applicationmay be associated with an application manager. Response data may bereceived over the network from the application based on the servicecall. Target interface data may be rendered based on the response data.The target interface data may be provided from the provider.

In an example embodiment, application source data may be received over anetwork from an application. A policy of a provider may be accessed.Target interface data may be rendered based on the application sourcedata and the policy of the provider. The target interface data may becapable of being used to provide a user interface for a networkedresource associated with the provider. The target interface data may beprovided from the provider.

In an example embodiment, an application may be configured to offer aservice. Origination data including a service call to the serviceoffered by the application may be received. The origination data may beprovided to a provider. The provider may be capable of utilizing theorigination data to provide interface data.

FIG. 1 illustrates an example system 100 in which a user operating aclient machine 102 may communicate over a network 104 to access anetworked resource 112 associated with a provider 106. The provider 106may communicate with an application manager 116 to access functionalityassociated with an application 114.

Examples of the client machine 102 include a set-top box (STB), areceiver card, a mobile telephone, a personal digital assistant (PDA), adisplay device, a portable gaming unit, and a computing system; howeverother devices may also be used.

The network 104 over which the client machine 102, the provider 106, thenetworked resource 112, the application 114, and/or the applicationmanager 116 are in communication may include a Global System for MobileCommunications (GSM) network, an Internet Protocol (IP) network, aWireless Application Protocol (WAP) network, a WiFi network, or a IEEE802.11 standards network as well as various combinations thereof. Otherconventional and/or later developed wired and wireless networks may alsobe used.

The provider 106 may provide interface data to enable a user of theclient machine 102 to access functionality associated with the networkedresource 112. A user request may be received from the client machine 102through the user interface. The provider 106 may then provide a servicecall over the network 104 to the application 114. The service call maybe made, in an example embodiment, when the provider 106 does not havethe functionality associated with the user request and the application114 has the functionality. The application 114 may process the servicecall and provide response data to the provider 106 in response. Theprovider 106 may then render target interface data based on the responsedata and providing the target interface data to the client machine 102.

The provider 106 may use additional data to render the target interfacedata. For example, the provider 106 may obtain provider data 122 and/ora policy 124 from a provider database 108. The provider data 122 mayinclude user information, additional functionality associated with theprovider 106, or the like. The policy 124 may include, by way ofexample, a developer branding of the networked resource, a look and feelof the networked resource, a workflow of the networked source, or thelike.

The application 114 may be, by way of example, a bookkeepingapplication, a tax calculation application, an invoicing application, asavings application (e.g., certificate of deposit), or a videoadvertising application. However, other applications which includefunctionality to be provided by the provider 106 may also be used. In anexample embodiment, the provider 106 may utilize the functionality ofthe application 114 while controlling the interface data provided to theclient 102.

The application manager 116 may access interface definition data 126from a manager database 110 and use the interface definition data 126,in an example embodiment, in providing response data to the provider106. The interface definition data 126 may include a user interfacespecification in user interface specification language.

FIG. 2 illustrates an example interfacing subsystem 118 that may bedeployed in the client machine 102 and/or the provider 106 of the system100 (see FIG. 1) or otherwise deployed in another system. Theinterfacing subsystem 118 may include an application verification module202, an origination data receiver module 204, a login module 206, asource interface data provider module 208, a user request receivermodule 210, a service call provider module 212, a specification providermodule 214, an application request receiver module 216, a data providermodule 218, a response data receiver module 220, an application sourcedata receiver module 222, a policy access module 224, a storage module226, an interface definition data module 228, a provider data accessmodule 230, a data processing module 232, an interface data renderingmodule 234, and/or an interface data provider module 236. Other modulesmay also be included.

The application verification module 202 verifies the application 114.The origination data receiver module 204 receives origination data fromthe application 114. The login module 206 receives a login request andprocesses the login request.

The source interface data provider module 208 provides source interfacedata from the provider 106. The source interface data may be capable ofbeing used to provide a source user interface for the networked resource112 associated with the provider 106. The providing of the sourceinterface data may be based on the processing of the login request. Thesource user interface may be a source web page or another type ofinterface.

The user request receiver module 210 receives a user request throughwith the source user interface. The receiving of the user request may bebased on a service reference. The service call provider module 212provides a service call over the network 104 to the application 114based on the receiving of the user request.

The specification provider module 214 provides a response dataspecification and/or an application source data specification to theapplication manager 116. The application request receiver module 216receives an application request over the network 104 from theapplication 114 based on the providing of the service call.

The data provider module 218 provides the provider data 122 from theprovider 106 to the application 114 based on the receiving of theapplication request. The response data receiver module 220 receivesresponse data over the network 104 from the application 114 based on theservice call. The receiving of the response data may be based on theresponse data specification and/or responsive to the providing of theprovider data 122.

The application source data receiver module 222 receives applicationsource data over the network 104 from the application 114. The receivingof the application source data may be based on the application sourcedata specification. The policy access module 224 accesses the policy 124of the provider 106.

The storage module 226 stores at least a portion of the response dataand/or the source data. The interface definition data module 228receives the interface definition data 126 from the application manager116, verifies the interface definition data 126, stores the interfacedefinition data 126, and/or accesses the interface definition data 126associated with the application 114.

The provider data access module 230 accesses the provider data 122associated with the provider 106 (e.g., based on the user request). Thedata processing module 232 processes the response data and/or theapplication source data.

The interface data rendering module 234 renders target interface databased on the response data and/or the application source data and/orrenders the source interface data based on the origination data.

The source interface data may include a service reference for theapplication 114. The rendering of the target interface data may be basedon the response data, the provider data 122, the policy 124, theinterface definition data 126, and/or the processing of the applicationsource data.

The interface data provider module 236 provides the target interfacedata from the provider 106. The target interface data may be providedfrom the provider through an application programming interface (API) orotherwise provided.

FIG. 3 illustrates an example management subsystem 120 that may bedeployed in the application manager 116 of the system 100 (see FIG. 1)or otherwise deployed in another system. The management subsystem 120may include an application configuration module 302, an interfacedefinition provider module 304, an origination data receiver module 306,an origination data provider module 308, a service call receiver module310, an application request provider module 312, a provider datareceiver module 314, a specification receiver module 316, a responsegeneration module 318, and/or a response data provider module 320. Othermodules may also be included.

The application configuration module 302 configures the application 114to offer a service. The interface definition provider module 304provides interface definition data to the provider 106.

The origination data receiver module 306 receives origination dataincluding a service call to the service offered by the application 114.The origination data provider module 308 provides the origination datato the provider 106. The provider 106 may be capable of utilizing theorigination data to provide interface data.

The service call receiver module 310 receives a service call over thenetwork 104 based on the providing of the origination data. Theapplication request provider module 312 provides an application requestover the network 104 to the provider 106 based on the receiving of theservice call.

The provider data receiver module 314 receives provider data from theprovider 106 based on the providing of the application request. Thespecification receiver module 316 receives a response data specificationfrom the provider 106.

The response generation module 318 generates response data from theapplication 114 based on the service call, the provider data, and/or onthe specification. The response data provider module 320 provides theresponse data over the network 104 to the provider 106.

FIG. 4 illustrates a method 400 for interface data rendering accordingto an example embodiment. The method 400 may be performed by the clientmachine 102 and/or the provider 106 of the system 100 (see FIG. 1) orotherwise performed.

In an example embodiment, the method 400 may be used to enable theprovider 106 to offer functionality beyond its own capabilities orspecialization. This additional functionality may be provided from theapplication 1.14 or a service within the application 114. Providing theadditional functionality to users in this leveraged manner may increasethe value and relevance of the provider 106.

The application 114 may be verified at block 402. The verification mayinclude a security check, validating the application 114, and the like.A response data specification may be provided to the application manager116 at block 404.

Source interface data is provided from the provider 106 at block 406.The source interface data may be capable of being used to provide asource user interface for the networked resource 112 associated with theprovider 106. The source user interface may be a source web page, aprogrammable interface, or a different type of interface

In an example embodiment, a login request may be received and the loginrequest may be processed prior to the providing of the source interfacedata.

In an example embodiment, origination data may be received from theapplication and the source interface data provided during the operationsat block 406 may be rendered based on the origination data. The sourceinterface data may include a service reference for the application 114.

A user request is received through with the source user interface atblock 408. The receiving of the user request may be based on the servicereference.

At block 410, a service call is provided over the network 104 to theapplication 114 based on receipt of the user request.

Response data is received over the network 104 from the application 114based on the service call at block 412. The receiving of the responsedata may be based on the response data specification.

In an example embodiment, an application request may be received overthe network 104 from the application 114 based on the providing of theservice call and the provider data 122 may be provided from the provider106 to the application 114 based on the receiving of the applicationrequest. The response data may be received during the operationsperformed at block 412 responsive to the providing of the provider data.

At least a portion of the response data may be stored at block 414. Theresponse data may be processed at block 416. The provider data 122associated with the provider 106 may be accessed based on the userrequest at block 418.

The policy 124 of the provider 106 may be accessed at block 420. Thepolicy 124 may include, by way of example, a developer branding of thenetworked resource, a look and feel of the networked resource, aworkflow of the networked source, or the like.

The interface definition data 126 associated with the application 114may be accessed at block 422. The interface definition data 126 mayinclude, in an example embodiment, a user interface specification inuser interface specification language.

In an example embodiment, the interface definition data 126 may bereceived from the application manager 116, the interface definition datamay be verified (e.g., citified; identification of security holes, andthe like), and the interface definition data 126 may be stored. Theaccessing of the interface definition data 126 during the operations atblock 422 may be based on the storing of the interface definition data126.

The target interface data is rendered based on the response data, theprovider data 122, the policy 124, and/or, and/or the interfacedefinition data 126 at block 424. The rendering may include, by way ofexample, translation and/or conversion of the response data. The targetinterface data may be capable of being used to provide a target userinterface for the networked resource 112.

The target interface data is provided from the provider 106 at block426. The target interface data may be provided from the provider 106through an application programming interface (API) or may be otherwiseprovided.

FIG. 5 illustrates a method 500 for interface data rendering accordingto an example embodiment. The method 500 may be performed by the clientmachine 102 and/or the provider 106 of the system 100 (see FIG, 1) orotherwise performed.

In an example embodiment, the method 500 may be used to enable theprovider 106 to offer functionality beyond its own capabilities orspecialization. This additional functionality may be provided from theapplication 114 or a service within the application 114. Providing theadditional functionality to users in this leveraged manner may increasethe value and relevance of the provider 106.

An application source data specification may be provided to theapplication manager 116 at block 502. The application manager 116 may beassociated with the application 114. The application 114 may be verifiedat block 504.

Application source data is received over the network 104 from theapplication 114 at block 506. The receiving of the application sourcedata may be based on the application source data specification.

A login request may be received at block 508. The login request may beprocessed at block 510. At least a portion of the application sourcedata may be stored at block 512.

The policy 124 of the provider 106 is accessed (e.g., from the providerdatabase 108) at block 514. The provider data 122 associated with theprovider 106 may be accessed at block 516. The interface definition data126 may be received from the application manager 116 at block 518.

The interface definition data 126 may be verified at block 520. Theverification may include certifying the interface definition data 126,identifying security holes in the interface definition data 126, or thelike,

The interface definition data 126 may be stored at block 522. Thestoring of the interface definition data 126 may be based onverification of the interface definition data.

The interface definition data 126 associated with the application 114may be accessed at block 524. The interface definition data 126 mayinclude a user interface specification in user interface specificationlanguage. The accessing of the interface definition data 126 may bebased on storage of the interface definition data 126. The applicationsource data may be processed at block 526.

At block 528, target interface data is rendered based on the applicationsource data, the response data, the provider data 122, the policy 124,and/or interface definition data 126 of the provider 106. The targetinterface data may be capable of being used to provide a user interfacefor the networked resource 112 associated with the provider 106.

The target interface data may be provided from the provider at block530. The target interface data may be provided from the provider throughan application programming interface (API) or otherwise provided. Theproviding of the target interface data may be based on the processing ofthe login request.

FIG. 6 illustrates a method 600 for origination data utilizationaccording to an example embodiment. The method 600 may be performed bythe application manager 116 of the system 100 (see FIG. 1) or otherwiseperformed.

The application 114 is configured to offer a service at block 602. TheInterface definition data 126 may be provided to the provider 106 atblock 604.

Origination data including a service call to the service offered by theapplication 114 is received at block 606. The origination data isprovided to the provider 106 at block 608. The provider 106 may becapable of utilizing the origination data to provide interface data.

At block 610, a service call may be received over the network 104 basedon the providing of the origination data. An application request may beprovided over the network 104 to the provider 106 based on the receivingof the service call at block 612. The provider data 122 may be receivedfrom the provider 106 based on the providing of the application requestat block 614.

A response data specification may be received from the provider 106 atblock 616. Response data may be generated from the application 114 basedon the service call at block 618. The generation of the response datamay be based on the service call and the provider data. The generationof the response data may be based on the response data specification.

The response data may be provided over the network 104 to the provider106 at block 620,

FIG. 7 is a network diagram depicting a client-server system 700, withinwhich one example embodiment may be deployed. By way of example, anetwork 704 may include the functionality of the network 104, theprovider 106 and/or the application manager 116 may be deployed withinan application server 718, and the client machine 102 may include thefunctionality of a client machine 710 or a client machine 712. Thesystem 700 may also be deployed in other systems.

A networked system 702, in the example forms of a network-basedmarketplace or publication system, provides server-side functionality,via a network 704 (e.g., the Internet or Wide Area Network (WAN)) to oneor more clients. FIG. 7 illustrates, for example, a web client 706(e.g., a browser, such as the Internet Explorer browser developed byMicrosoft Corporation of Redmond, Wash. State), and a programmaticclient 708 executing on respective client machines 710 and 712.

An Application Program Interface (API) server 714 and a web server 716are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 718. The application servers 718host one or more marketplace applications 720 and authenticationproviders 722. The application servers 718 are, in turn, shown to becoupled to one or more databases servers 724 that facilitate access toone or more databases 726,

The marketplace applications 720 may provide a number of marketplacefunctions and services to users that access the networked system 702.The authentication providers 722 may likewise provide a number ofpayment services and functions to users. The authentication providers722 may allow users to accumulate value (e.g., in a commercial currency,such as the U.S. dollar, or a proprietary currency, such as “points”) inaccounts, and then later to redeem the accumulated value for products(e.g., goods or services) that are made available via the marketplaceapplications 720. While the marketplace and authentication providers 720and 722 are shown in FIG. 7 to both form part of the networked system702, in alternative embodiments the authentication providers 722 mayform part of a payment service that is separate and distinct from thenetworked system 702.

Further, while the system 700 shown in FIG. 7 employs a client-serverarchitecture, embodiments of the present invention are of course notlimited to such an architecture, and could equally well find applicationin a distributed, or peer-to-peer, architecture system, for example. Thevarious marketplace and authentication providers 720 and 722 could alsobe implemented as standalone software programs, which need not havenetworking capabilities.

The web client 706 accesses the various marketplace and authenticationproviders 720 and 722 via the web interface supported by the web server716. Similarly, the programmatic client 708 accesses the variousservices and functions provided by the marketplace and authenticationproviders 720 and 722 via the programmatic interface provided by the APIserver 714. The programmatic client 708 may, for example, be a sellerapplication (e.g., the TurboLister™ application developed by eBay Inc.,of San Jose, Calif.) to enable sellers to author and manage listings onthe networked system 702 in an off-line manner, and to performbatch-mode communications between the programmatic client 708 and thenetworked system 702.

FIG. 7 also illustrates a third party application 728, executing on athird party server machine 730, as having programmatic access to thenetworked system 702 via the programmatic interface provided by the APIserver 714. For example, the third party application 728 may, utilizinginformation retrieved from the networked system 702, support one or morefeatures or functions on a website hosted by the third party. The thirdparty may, for example, provide one or more promotional, marketplace orpayment functions that are supported by the relevant applications of thenetworked system 702. The programmatic client 728 may, for example, be alending application to enable buyers and sellers to access third partysources of funds, such as www.samedaycash.com, provided by Wonga.com ofLondon, England. The programmatic client 728 may be any third partyapplication (e.g., accounting, tax calculation, lending, invoicing,savings, among others) that is offered through system 702.

FIG. 8 is a block diagram illustrating multiple applications 720 and 722that, in one example embodiment, are provided as part of the networkedsystem 702 (see FIG. 7). The applications 720 may be hosted on dedicatedor shared server machines (not shown) that are communicatively coupledto enable communications between server machines. The applicationsthemselves are communicatively coupled (e.g., via appropriateinterfaces) to each other and to various data sources, so as to allowinformation to be passed between the applications or so as to allow theapplications to share and access common data. The applications mayfurthermore access one or more databases 726 via the database servers724.

The networked system 702 may provide a number of publishing, listing andprice-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale, a buyer can expressinterest in or indicate a desire to purchase such goods or services, anda price can be set for a transaction pertaining to the goods orservices. To this end, the marketplace applications 720 are shown toinclude at least one publication application 800 and one or more auctionapplications 802 which support auction-format listing and price settingmechanisms (e.g., English, Dutch, Vickrey, Chinese, Double, Reverseauctions etc.). The various auction applications 802 may also provide anumber of features in support of such auction-format listings, such as areserve price feature whereby a seller may specify a reserve price inconnection with a listing and a proxy-bidding feature whereby a biddermay invoke automated proxy bidding.

A number of fixed-price applications 804 support fixed-price listingformats (e.g., the traditional classified advertisement-type listing ora catalogue listing) and buyout-type listings. Specifically, buyout-typelistings (e.g., including the Buy-It-Now (BIN) technology developed byeBay Inc., of San Jose, Calif.) may be offered in conjunction withauction-format listings, and allow a buyer to purchase goods orservices, which are also being offered for sale via an auction, for afixed-price that is typically higher than the starting price of theauction.

Store applications 806 allow a seller to group listings within a“virtual” store, which may be branded and otherwise personalized by andfor the seller. Such a virtual store may also offer promotions,incentives and features that are specific and personalized to a relevantseller.

Reputation applications 808 allow users that transact, utilizing thenetworked system 702, to establish, build and maintain reputations,which may be made available and published to potential trading partners.Consider that where, for example, the networked system 702 supportsperson-to-person trading, users may otherwise have no history or otherreference information whereby the trustworthiness and credibility ofpotential trading partners may be assessed. The reputation applications808 allow a user, for example through feedback provided by othertransaction partners, to establish a reputation within the networkedsystem 702 over time. Other potential trading partners may thenreference such a reputation for the purposes of assessing credibilityand trustworthiness.

Personalization applications 810 allow users of the networked system 702to personalize various aspects of their interactions with the networkedsystem 702. For example a user may, utilizing an appropriatepersonalization application 810, create a personalized reference page atwhich information regarding transactions to which the user is (or hasbeen) a party may be viewed. Further, a personalization application 810may enable a user to personalize listings and other aspects of theirinteractions with the networked system 702 and other parties.

The networked system 702 may support a number of marketplaces that arecustomized, for example, for specific geographic regions. A version ofthe networked system 702 may be customized for the United Kingdom,whereas another version of the networked system 702 may be customizedfor the United States. Each of these versions may operate as anindependent marketplace, or may be customized (or internationalizedand/or localized) presentations of a common underlying marketplace. Thenetworked system 702 may accordingly include a number ofinternationalization applications 812 that customize information (and/orthe presentation of information) by the networked system 702 accordingto predetermined criteria (e.g., geographic, demographic or marketplacecriteria). For example, the internationalization applications 812 may beused to support the customization of information for a number ofregional websites that are operated by the networked system 702 and thatare accessible via respective web servers 716.

Navigation of the networked system 702 may be facilitated by one or morenavigation applications 814. For example, a search application (as anexample of a navigation application) may enable key word searches oflistings published via the networked system 702. A browse applicationmay allow users to browse various category, catalogue, or systeminventory structures according to which listings may be classifiedwithin the networked system 702. Various other navigation applicationsmay be provided to supplement the search and browsing applications.

In order to make listings available via the networked system 702 asvisually informing and attractive as possible, the marketplaceapplications 720 may include one or more imaging applications 816utilizing which users may upload images for inclusion within listings.An imaging application 816 also operates to incorporate images withinviewed listings. The imaging applications 816 may also support one ormore promotional features, such as image galleries that are presented topotential buyers. For example, sellers may pay an additional fee to havean image included within a gallery of images for promoted items.

Listing creation applications 818 allow sellers conveniently to authorlistings pertaining to goods or services that they wish to transact viathe networked system 702, and listing management applications 800 allowsellers to manage such listings. Specifically, where a particular sellerhas authored and/or published a large number of listings, the managementof such listings may present a challenge. The listing managementapplications 800 provide a number of features (e.g., auto-relisting,inventory level monitors, etc.) to assist the seller in managing suchlistings. One or more post-listing management applications 802 alsoassist sellers with a number of activities that typically occurpost-listing. For example, upon completion of an auction facilitated byone or more auction applications 702, a seller may wish to leavefeedback regarding a particular buyer. To this end, a post-listingmanagement application 802 may provide an interface to one or morereputation applications 808, so as to allow the seller conveniently toprovide feedback regarding multiple buyers to the reputationapplications 808.

Dispute resolution applications 814 provide mechanisms whereby disputesarising between transacting parties may be resolved. For example, thedispute resolution applications 814 may provide guided procedureswhereby the parties are guided through a number of steps in an attemptto settle a dispute. In the event that the dispute cannot be settled viathe guided procedures, the dispute may be escalated to a merchantmediator or arbitrator.

A number of fraud prevention applications 826 implement fraud detectionand prevention mechanisms to reduce the occurrence of fraud within thenetworked system 702.

Messaging applications 828 are responsible for the generation anddelivery of messages to users of the networked system 702, such messagesfor example advising users regarding the status of listings at thenetworked system 702 (e.g., providing “outbid” notices to bidders duringan auction process or to provide promotional and merchandisinginformation to users). Respective messaging applications 828 may utilizeany one have a number of message delivery networks and platforms todeliver messages to users. For example, messaging applications 828 maydeliver electronic mail (e-mail), instant message (IM), Short MessageService (SMS), text, facsimile, or voice (e.g., Voice over IP (VoIP))messages via the wired (e.g., the Internet), Plain Old Telephone Service(POTS), or wireless (e.g., mobile, cellular, WiFi, WiMAX) networks.

Merchandising applications 830 support various merchandising functionsthat are made available to sellers to enable sellers to increase salesvia the networked system 702. The merchandising applications 830 alsooperate the various merchandising features that may be invoked bysellers, and may monitor and track the success of merchandisingstrategies employed by sellers.

The networked system 702 itself, or one or more parties that transactvia the networked system 702, may operate loyalty programs that aresupported by one or more loyalty/promotions applications 832. Forexample, a buyer may earn loyalty or promotions points for eachtransaction established and/or concluded with a particular seller, andmay be offered a reward for which accumulated loyalty points can beredeemed.

Interfacing applications 834 may enable functionality from one or moreapplications 114 not deployed on the application 720, 722 to beavailable to a user. For example, the application 114 may used in placeof one of the applications 800-832, may supplement the functionality ofthe applications 800-832, or provide additional functionality notprovided by the applications 800-832.

FIG. 9 shows a diagrammatic representation of machine in the exampleform of a computer system 900 within which a set of instructions may beexecuted causing the machine to perform any one or more of the methods,processes, operations, or methodologies discussed herein. The provider106, the application manager 116, and/or the application 114 may operateon or more computer systems 900. The client machine 102 may include thefunctionality of one or more computer systems 900.

In an example embodiment, the machine operates as a standalone device ormay be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a server computer, a client computer, a personal computer(PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant(PDA), a cellular telephone, a web appliance, a network router, switchor bridge, or any machine capable of executing a set of instructions(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while only a single machine is illustrated, the term“machine” shall also be taken to include any collection of machines thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the methodologies discussed herein.

The example computer system 900 includes a processor 902 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 904 and a static memory 906, which communicate with eachother via a bus 908. The computer system 900 may further include a videodisplay unit 910 (e.g., a liquid crystal display (LCD) or a cathode raytube (CRT)). The computer system 900 also includes an alphanumeric inputdevice 912 (e.g., a keyboard), a cursor control device 914 (e.g., amouse), a drive unit 916, a signal generation device 918 (e.g., aspeaker) and a network interface device 920.

The drive unit 916 includes a machine-readable medium 922 on which isstored one or more sets of instructions (e.g., software 924) embodyingany one or more of the methodologies or functions described herein. Thesoftware 924 may also reside, completely or at least partially, withinthe main memory 904 and/or within the processor 902 during executionthereof by the computer system 900, the main memory 904 and theprocessor 902 also constituting machine-readable media.

The software 924 may further be transmitted or received over a network926 via the network interface device 920.

While the machine-readable medium 922 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the embodiments of the present invention. The term“machine-readable medium” shall accordingly be taken to include, but notbe limited to, solid-state memories, optical and magnetic media, andcarrier wave signals.

Certain systems, apparatus, applications or processes are describedherein as including a number of modules or mechanisms. A module or amechanism may be a unit of distinct functionality that can provideinformation to, and receive information from, other modules.Accordingly, the described modules may be regarded as beingcommunicatively coupled. Modules may also initiate communication withinput or output devices, and can operate on a resource (e.g., acollection of information). The modules be implemented as hardwarecircuitry, optical components, single or multi-processor circuits,memory circuits, software program modules and objects, firmware, andcombinations thereof, as appropriate for particular implementations ofvarious embodiments.

Thus, methods and systems for interface data utilization have beendescribed. Although the present invention has been described withreference to specific example embodiments, it will be evident thatvarious modifications and changes may be made to these embodimentswithout departing from the broader spirit and scope of the invention.Accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment.

What is claimed is:
 1. A system comprising: a provider server offeringresources; an application server external to the provider server, theapplication server offering a functionality not provided by theresources of the provider server; a first database containing a policyof the provider server; and a second database containing interfacedefinition data; wherein the provider server is communicatively coupledto the application server, the first database, and the second database,and is configured to: receive, from a client machine, a user request toaccess a networked resource; determine that the user request contains arequest to access the functionality not offered by the provider server;make a service call to the application server; receive response datafrom the application server; access the policy of the provider serverfrom the first database; access interface definition data from thesecond database; and render target interface data based on the policy ofthe provider server and the interface definition data.
 2. The system ofclaim 1, wherein the policy includes a developer branding of thenetworked resource.
 3. The system of claim 1, wherein the interfacedefinition data includes a user interface specification in a userinterface specification language.
 4. The system of claim 1, wherein therendered target interface data is further based on response datareceived from the application server in response to the service call. 5.The system of claim 1, wherein the provider server is further configuredto provide the target interface data to the client machine.
 6. Thesystem of claim 1 wherein the interface definition data defines a userinterface for the networked resource associated with the provider. 7.The system of claim 1, wherein the service call contains an applicationrequest.
 8. The system of claim 1, wherein the provider server isfurther configured to verify the interface definition data by certifyingthe interface definition data or identifying security holes in theinterface definition data.
 9. The system of claim 1, wherein theprovider server is further configured to receive origination data fromthe application server; wherein the target interface data is furtherrendered based on the origination data; and wherein the target interfacedata contains a service reference for the application.
 10. A methodcomprising: receiving, from a client machine, a user request to access anetworked resource associated with a provider; determining that therequest contains a request to access a functionality that is not offeredby the provider but is offered by an application that is communicativelycoupled to the provider via a network; establishing, in response to thedetermining, electronic communication between the provider and theapplication via the network; accessing a policy of the provider from afirst database; accessing interface definition data from a seconddatabase different from the first database; and rendering targetinterface data based on the policy of the provider and the interfacedefinition data.
 11. The method of claim 10 wherein the policy include adeveloper branding of the networked resource.
 12. The method of claim 10wherein the interface definition data includes a user interfacespecification in user interface specification language.
 13. The methodof claim 10 wherein the rendering the target interface data is performedbase further on the established communication between the provider andthe application.
 14. The method of claim 10 further comprising providingthe target interface data to the client machine.
 15. The method of claim10 wherein the interface definition data defines a user interface forthe networked resource associated with the provider.
 16. The method ofclaim 10, further comprising verifying the interface definition data.17. The method of claim 16 wherein verifying the interface definitiondata comprises certifying the interface definition data or identifyingsecurity holes in the interface definition data.
 18. The method of claim10 further comprising exchanging origination data associated with theapplication.
 19. The method of claim 18 wherein the target interfacedata is further rendered based on the origination data.
 20. The methodof claim 19 wherein the target interface data contains a servicereference for the application.